The present invention pertains generally to audio/video playback devices. More particularly, the present invention pertains to playback of media data held in storage devices across a data network.
Today, a wide variety of applications demand that a workstation display a moving image with accompanying sound. Often these workstations must access the audio and video data from multiple sources, some local and some accessed via a network connection. This data must be supplied to the display unit at a constant rate in order to achieve a steady picture. Problems arise when the data is not provided to the workstation at the required rate.
This problem is particularly acute when the data source must be accessed via a network. Delays in accessing data over standard networks tend to be longer and have a wider variance than accessing data from a local source (e.g., local RAM, local disk drive). Conventionally, one must insure that the network provides the data at a constant rate in order to achieve an acceptable output.
One way of achieving a constant data rate is known as the xe2x80x9cserver pushxe2x80x9d solution. In a system implemented with the xe2x80x9cserver pushxe2x80x9d model, the client sends a request specifying what to play, and how fast to play it. The server responds by sending the requested information at the requested rate. One advantage of the xe2x80x9cserver pushxe2x80x9d solution that the client hardware and software required is very simple.
That approach, however, has several drawbacks. First, in xe2x80x9cserver pushxe2x80x9d systems, the client sends requests to the server when the user issues a playback control signal, such as xe2x80x9cplayxe2x80x9d, xe2x80x9cstop,xe2x80x9d or xe2x80x9cfast forward.xe2x80x9d The user, however, cannot specify a particular frame or frames to be played because the playback logic resides within the server. Applications that lack frame accurate playback capability may be sufficient for most users. However, those applications cannot meet the demand of developers and artists for creating animation and special effects. Therefore, there exists a need for an improved system and method of providing frame-accurate transport of media data across a data network.
Further, in xe2x80x9cserver pushxe2x80x9d systems, it is not possible to play multiple clips seamlessly across the network if the clips are stored in different locations. Usually, after each clip is played, the user has to manually select another clip to be played. In other cases where a playlist is specified, there is usually a short xe2x80x9cbreakxe2x80x9d between the ending of one clip and the beginning of another. This is caused by the fact that the client workstation has no control over when the movie data is sent. Thus, there exists a need for a system and method of providing seamless playback of multiple clips across a data network.
Accordingly, the present invention provides a software architecture and control protocol that allows frame-accurate, random-access, real-time and stream-based media data over a data network. Conventional server-based data network does not provide a frame accurate control of server-based media data playback on a client workstation. In contrast, the present invention provides a xe2x80x9cclient pullxe2x80x9d data transport model where media data is xe2x80x9cpulledxe2x80x9d from the server across the data network one frame at a time, and where requests for media data are sent from the client one at a time. In this way, frame accurate real-time playback of media data that resides on the server can be achieved.
The present invention enables a user to retrieve a single frame of media data across the data network. Particularly, according to one embodiment of the invention, when a client receives user inputs that requests a single frame to be played, the client translates the user inputs into into a frame accurate request. The client then sends the frame accurate request to the server. The server, upon receiving the request, retrieves the requested frame and transmits the requested frame back to the client. Rendering processes and decompression processes, etc., are then carried out to render the frame of media data on a display.
Further, the user of the present invention is able to specify a clip of media data to be played on the client. When the client receives user inputs that request a clip or clips to be played, the client translates the user inputs into a series of frame accurate requests. The client workstation then sends the frame accurate requests one at a time to the server. The server responds to the requests by sending the requested frames one at a time. Significantly, the playback logic of the present invention is implemented in software processes residing on the client side. Thus, in contrast to conventional xe2x80x9cserver pushxe2x80x9d playback systems, software processes residing on the client xe2x80x9cpullsxe2x80x9d specific frame of media data from the server one frame at a time.
Embodiments of the present invention include the above and further include a computer readable medium containing therein computer readable codes for causing a computer system to perform a step of playing media data across a data network. According to the present embodiment, the method includes the step of receiving a playback control signal from a user via a user interface. If the playback control signal specifies a particular frame to be played, the present invention translates the playback control signal into a frame accurate request corresponding to a specific frame of media data. The present invention also transmits the request over the data network to a server. However, if the playback control signal specifies a particular clip or clips to be played, the present invention then translates the playback control signal into a series of requests each corresponding to a specific frame of the requested clip(s). The requests are then transmitted over the data network to the server one at a time. The server upon receiving the frame accurate requests retrieves the requsted frames and transmits them back to the client one frame at a time. An advantage of the present invention is that frame accurate control and playback of server based media data across a data network can be achieved.